A Common Information Model (CIM) is a standardized system to model devices and applications easily. CIM describes devices (i.e., a storage array) in a common and consistent way irrespective of the vendor and device architecture. A CIM provider is a software component that provides information about an entity (logical or physical) to a CIM Object Manager (CIMOM). For example, a storage provider is an executable that provides a conduit for management activities of storage devices.
Referring to FIG. 1, a diagram of a conventional CIM system 10 implementation is shown. The CIM system 10 generally comprises a CIM client 12 and a CIM server 14. The CIM client 12 generally comprises a management application 16 in communication with the CIM server 14 through an interface 17. The CIM server 14 generally comprises a CIM object manager 18 and one or more CIM providers 20. The CIM client 12 can request data from a managed resource such as a storage array. In such a case, the CIM object manager 18 forwards the request to a CIM provider 20 for the managed resource, if one exists. A number of managed devices 22 are shown controlled by the CIM providers 20. The CIM object manager 18 is the central component of the CIM server 14. The CIM object manager 18 is responsible for the communication between various components in the CIM server 14.
A problem associated with the conventional CIM approach is that many CIM providers 20 can simultaneously manage a single system/device 22. All of the CIM providers 20 fulfill specific CIM operations. For example, a partial list of CIM providers 20 that would be needed to manage a single storage system 22 include (i) a disk drive CIM provider, (ii) a disk extent CIM provider, (iii) a free extent CIM provider, (iv) a namespace CIM provider, (v) a registered profile and sub-profile CIM provider, (vi) a storage pool and volume CIM provider and (vii) a logical unit number mapping and masking CIM provider. The common operations that a CIM provider 20 will be asked to service by the CIM client 12 are retrieving, enumerating, creating, updating or deleting objects, performing queries, making method calls, getting properties and setting the properties of an object. Each CIM provider 20 performs CIM operations though the particular operations fulfilled can vary depending upon the device or application that is being managed.
A system is needed to test the CIM providers 20. Writing specialized unit tests for CIM providers 20 that share common functionality is tedious and time consuming. Standardizing testing procedures for CIM providers 20 would be desirable. Standardizing would reduce the time and cost complexities used to test CIM provider code, since CIM providers 20 exist for managing a broad range of physical servers, storage devices, fibre channel switches and appliances, tape, host bus adapters, IP networking devices and logical applications, operating systems, users, policies, database-entities. Reducing the time and resources needed for testing the CIM providers would also be desirable.